package com.working.libcommon.util.config

import android.app.Activity
import android.graphics.Color
import android.graphics.drawable.Drawable
import android.view.WindowManager
import androidx.annotation.ColorInt
import androidx.appcompat.app.ActionBar
import androidx.appcompat.app.AppCompatDelegate

fun Activity.config(config: ActivityConfig.() -> Unit) {
    ActivityConfig().apply(config).init(this)
}


class ActivityConfig {
    fun init(activity: Activity) {

    }

    private var isHasActionBar = false //当前页面是否设置actionBar

    fun actionBar(config: ActionBar.() -> Unit) {
        TODO("配置ActionBar 如果存在")
    }

    fun requestedOrientation(requestedOrientation: Int) {
        TODO("固定横竖屏")
    }

    var darkModel = AppCompatDelegate.MODE_NIGHT_YES

    var isSupportSwipeBack = false

    var isActivityTransparent = false

    //调用此方法 布局将撑满statusBar 同时隐藏actionBar navigationBar
    fun fullScreen() {
        TODO("全屏化activity")
    }


    fun statusBar(config: BarConfig.() -> Unit) {
        TODO("配置statusBar")
    }


    fun navigationBar(config: BarConfig.() -> Unit) {
        TODO("配置navigationBar")
    }


    var navigationBarColor = Color.TRANSPARENT //导航栏颜色
    var isShowNavigationBar = false //是否显示导航栏
    var isShowStatusBar = false //是否显示状态栏
}

class BarConfig {
    var isDarkMode = false //状态栏是否暗色模式
    var alpha = 1f //状态栏透明度
    var color = Color.TRANSPARENT //状态栏颜色  纯色
    var drawable: Drawable? = null //状态栏颜色 渐变色

    fun Activity.statusBarColor(@ColorInt color: Int) {
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        window.statusBarColor = color
    }
}